home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / C / ASAP / bitmap.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-09-08  |  4.1 KB  |  81 lines

  1. /*****************************************************************************
  2.  *                                                                           *
  3.  * ASAP - Amiga Software Authoring Platform                                  *
  4.  *                                                                           *
  5.  * Written by Laurie Perrin                                                  *
  6.  *                                                                           *
  7.  * ABitMap wrapper class                                                     *
  8.  *                                                                           *
  9.  *****************************************************************************/
  10.  
  11. #ifndef ASAP_ABitMap_H
  12. #define ASAP_ABitMap_H
  13.  
  14. #include <New.h>
  15.  
  16. extern "C"
  17. {
  18.  #include <Proto/Graphics.h>
  19. }
  20.  
  21. class ABitMap : public BitMap
  22. {
  23.  public:
  24.  inline static ABitMap * AllocBitMap(unsigned long sizex, unsigned long sizey, unsigned long depth, unsigned long flags, BitMap * friend_bitmap);
  25.  inline void * operator new(size_t, unsigned long sizex, unsigned long sizey, unsigned long depth, unsigned long flags, BitMap * friend_bitmap);
  26.  inline LONG BltBitMap(long xSrc, long ySrc, BitMap * destBitMap, long xDest, long yDest, long xSize, long ySize, unsigned long minterm, unsigned long mask, PLANEPTR tempA);
  27.  inline void BltBitMapRastPort(long xSrc, long ySrc, RastPort * destRP, long xDest, long yDest, long xSize, long ySize, unsigned long minterm);
  28.  inline void BltMaskBitMapRastPort(long xSrc, long ySrc, RastPort * destRP, long xDest, long yDest, long xSize, long ySize, unsigned long minterm, PLANEPTR bltMask);
  29.  inline void FreeBitMap();
  30.  inline void operator delete(void *);
  31.  inline ULONG GetBitMapAttr(unsigned long attrnum);
  32.  inline void InitBitMap(long depth, long width, long height);
  33. };
  34. //----------------------------------------------------------------------------
  35. ABitMap * ABitMap::AllocBitMap (unsigned long sizex, unsigned long sizey, unsigned long depth, unsigned long flags, BitMap * friend_bitmap)
  36. {
  37.  return (ABitMap *) ::AllocBitMap(sizex, sizey, depth, flags, friend_bitmap);
  38. }
  39. //----------------------------------------------------------------------------
  40. void * ABitMap::operator new(size_t, unsigned long sizex, unsigned long sizey, unsigned long depth, unsigned long flags, BitMap * friend_bitmap)
  41. {
  42.  return ABitMap::AllocBitMap(sizex, sizey, depth, flags, friend_bitmap);
  43. }
  44. //----------------------------------------------------------------------------
  45. LONG ABitMap::BltBitMap (long xSrc, long ySrc, BitMap * destBitMap, long xDest, long yDest, long xSize, long ySize, unsigned long minterm, unsigned long mask, PLANEPTR tempA)
  46. {
  47.  return ::BltBitMap(this, xSrc, ySrc, destBitMap, xDest, yDest, xSize, ySize, minterm, mask, tempA);
  48. }
  49. //----------------------------------------------------------------------------
  50. void ABitMap::BltBitMapRastPort (long xSrc, long ySrc, RastPort * destRP, long xDest, long yDest, long xSize, long ySize, unsigned long minterm)
  51. {
  52.  ::BltBitMapRastPort(this, xSrc, ySrc, destRP, xDest, yDest, xSize, ySize, minterm);
  53. }
  54. //----------------------------------------------------------------------------
  55. void ABitMap::BltMaskBitMapRastPort (long xSrc, long ySrc, RastPort * destRP, long xDest, long yDest, long xSize, long ySize, unsigned long minterm, PLANEPTR bltMask)
  56. {
  57.  ::BltMaskBitMapRastPort(this, xSrc, ySrc, destRP, xDest, yDest, xSize, ySize, minterm, bltMask);
  58. }
  59. //----------------------------------------------------------------------------
  60. void ABitMap::FreeBitMap ()
  61. {
  62.  ::FreeBitMap(this);
  63. }
  64. //----------------------------------------------------------------------------
  65. void ABitMap::operator delete(void *bm)
  66. {
  67.  ((ABitMap *) bm)->FreeBitMap();
  68. }
  69. //----------------------------------------------------------------------------
  70. ULONG ABitMap::GetBitMapAttr (unsigned long attrnum)
  71. {
  72.  return ::GetBitMapAttr(this, attrnum);
  73. }
  74. //----------------------------------------------------------------------------
  75. void ABitMap::InitBitMap (long depth, long width, long height)
  76. {
  77.  ::InitBitMap(this, depth, width, height);
  78. }
  79.  
  80. #endif
  81.